sst 배포중 발생 이슈 해결하기

2025-05-14
ssttsconfig

문제 발생

신규 사이드 프로젝트를 시작하기 위해 MVP 앱을 구성하고 sst로 빠른 배포를 진행했다.
sst config를 구성한 뒤 배포중에 sst와 관련된 에러가 빌드 시점에 발생했다.

.sst/platform/src/components/aws/analog.ts:422:17
Type error: 'serverFunction' is possibly 'undefined'.

  420 |         path: sitePath,
  421 |         url: distribution.apply((d) => d.domainUrl ?? d.url),
> 422 |         server: serverFunction.arn,
      |                 ^
  423 |       },
  424 |     });
  425 |
Next.js build worker exited with code: 1 and signal: null

이슈발생 환경 조건

  • nextjs@15
  • react@19
  • turborepo(monorepo)
  • pnpm 패키지 매니저

예상 원인

  1. sst 및 open-next 버전 문제 - v2, v3(ion)는 config 구성이 다름
  2. pnpm 관련 이슈
  3. 모노레포 관련 이슈
  4. nextjs, react 버전 이슈

과정

당연히 sst의 config 구성이나 open-next의 버전 문제 등으로 인식하고 이런저런 시도를 해보았다. 하지만 생각보다 오랜 시간을 디버깅했다..

원인은 조금은 다른곳에서 발견되었다.

모노레포를 세팅해본 사람이라면 한번씩은 봤을것이다.모노레포는 특성답게 앱이 다양한 패키지를 바라보고 이를 확장하여 사용할 수 있다.
tsconfig.json|500x299

나는 평소와 같이 모노레포를 create-turbo로 템플릿을 바로 사용했다. 기본 앱에는 tsconfig에서 기본으로 구성되어 있는 package/typescript-config를 끌어와서 사용하고 있다. 근데 단순한 이유로 앱이 해당 패키지를 읽지 못하다보니 extends를 하지 못하고 있었다.
이 패키지를 읽지 못한게 이 이슈의 원인이었다.

sst-deploy-issue-image-2.png|550x226
보통은 에러 메세지를 통한 이슈라면 늦더라도 두어시간이면 해결이 가능했을텐데 에러와 무관한 부분에서 원인을 찾다보니 생각보다 딜레이가 된듯 하다.

오픈소스나 템플릿을 가져다 사용할때는 기본 구성을 주는대로 쓰지말고 내 환경에 맞게 구성해서 쓰자..

  • 문제 발생
    • 이슈발생 환경 조건
    • 예상 원인
    • 과정